package com.pai4j.common.service.messagequeue.producer;


import com.pai4j.common.enums.messagequeue.MessageBroadChannelEnum;
import com.pai4j.common.enums.messagequeue.MessageQueueEnum;
/**
 * 消息队列发送者接口
 *
 * @author: CYM-pai
 * @date: 2025/04/29 21:14
 **/
public interface MessageQueueSender<T, P> {

    /**
     * 普通队列消息发送
     *
     * @param queue
     * @param message
     */
    void send(MessageQueueEnum queue, T message);

    /**
     * 优先级队列消息发送
     *
     * @param queue
     * @param message
     * @param priority
     */
    void prioritySend(MessageQueueEnum queue, T message, P priority);

    /**
     * 广播消息发送
     *
     * @param channel
     * @param message
     */
    void broadSend(MessageBroadChannelEnum channel, T message);
}
